<?php

    Class Partido
    {
        var $idPartido;
        var $estado;
        var $nroEspectadores;
        var $fecha;
        var $resultado;
        var $idEquipoVisita;
        var $idEquipoLocal;
        var $factorLocal;
        var $factorVisita;
        var $factorEmpate;
        var $esClasificatorio;

        function __construct()
        {
            $this->resultado        = null;
            $this->estado           = 1; // No iniciado
            $this->nroEspectadores  = 0;
            $this->fecha            = date("Y-m-d");
            $this->factorVisita     = 1.5;
            $this->factorLocal      = 1.5;
            $this->factorEmpate     = 1.5;
        }

        function getEquipoVisita()
        {
            return EquiposDAO::getById( $this->idEquipoVisita );
        }

        function getEquipoLocal()
        {
            return EquiposDAO::getById( $this->idEquipoLocal );
        }

        function getDescripcion()
        {
            $a = $this->getEquipoVisita()->nombre;
            $b = $this->getEquipoLocal()->nombre;

            return "$b (Local) vs $a el dia $this->fecha";
        }

        function getEstadio()
        {
            return $this->getEquipoLocal()->getEstadio();
        }

        function getGoles()
        {
            $goles = array();

            $goles = GolesDAO::getByIdPartido($this->idPartido);

            return $goles;

        }

        function getGolesLocalSize()
        {
            $count = 0;

            foreach ($this->getGoles() as $gol)
            {
                if ($gol->idEquipo == $this->idEquipoLocal)
                    $count++;
            }

            return $count;
        }

        function getGolesVisitaSize()
        {
            $count = 0;

            foreach ($this->getGoles() as $gol)
            {
                if ($gol->idEquipo == $this->idEquipoVisita)
                    $count++;
            }

            return $count;
        }

        function getEstado()
        {
            switch ($this->estado)
            {
                case 1: return "No iniciado"; break;
                case 2: return "Primer tiempo"; break;
                case 3: return "Entre tiempo"; break;
                case 4: return "Segundo tiempo"; break;
                case 5: return "Finalizado"; break;
                case 6: return "Penales"; break;
            }
        }

        function getSiguienteEstado()
        {
            // Ya finalizo...
            if ($this->estado == 5) return $this->estado;

            $sgte = $this->estado + 1;

            // Van empatados y es clasificatorio
//            if ($sgte == 5 && $this->esClasificatorio && ...)
//                $sgte = 6;

            return $sgte;
        }

        function getResultado()
        {
            switch ($this->resultado)
            {
                case 1: return "Gano ". $this->getEquipoLocal()->nombre ; break;
                case 2: return "Gano ". $this->getEquipoVisita()->nombre ; break;
                case 3: return "Empataron"; break;
            }

            return "-";
        }

        function getTiempo()
        {
            switch ($this->estado)
            {
                case 2: return 1; break;
                case 4: return 2; break;
                case 6: return 3; break;
            }
        }

    }

?>